const nodeXlsx = require('node-xlsx');
const fs = require('fs');

/**
 * 把 Excel 转化 Json
 * @param { String } fileUri 文件来源
 * @param { String } byUri 文件去由
 * @param { String | Number} sheetNum 第几个 sheet 默认 1
 * @param { Object } format 转化字段
 * @returns Arrary
 */
exports.xlsx2json = function (fileUri, byUri, sheetNum, format) {
  if (!fileUri) {
    console.log('请填写文件来源');
    return;
  } else if (!byUri) {
    console.log('请填写文件去由');
    return;
  }
  if (!sheetNum) sheetNum = 1;
  let xlsxData = nodeXlsx.parse(fileUri);
  let fileArrary = [];
  xlsxData.forEach((sheet, index) => {
    if (index + 1 === sheetNum * 1) {
      sheet.data.slice(2).forEach((e) => {
        let result = {};
        for (let key in format) {
          result[key] = e[format[key]];
        }
        fileArrary.push(result);
      });
      fs.writeFile(byUri, JSON.stringify(fileArrary, null, 2), (err) =>
        console.log(!err ? '写入成功' : '写入失败')
      );
    }
  });
};

// module.exports = { xlsx2json };

// 使用:
// const { xlsx2json } = require('./server/xlsx2json');
// xlsx2json('../../static/务工建档.xlsx', './bb.json', '1', { name: 0, phone: 2, idCard: 1, ad: 3 });
